/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia.controller;

import bean.BuscaChaveEstrangeira;
import bean.CotacaoPreco;
import bean.PedidoCompra;
import groovy.lang.GroovyClassLoader;
import java.io.File;
import java.util.Vector;

/**
 *
 * @author André
 */
public class CotacaoController implements ICotacaoController {

    public static CotacaoController instance;
    private ICotacaoController mgr;

    public static CotacaoController getInstance() {
        if (instance == null) {
            instance = new CotacaoController();
        }
        return instance;
    }

    
    private CotacaoController() {
        try {
            GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
            Class classeProxy = groovyClassLoader.parseClass(
                    //new File("./src/java/persistencia/controller/CotacaoController.groovy"));
                    new File("D:/UEFS/Implementação TCC/codigos/CotacaoMercadoriaWS/src/java/persistencia/controller/CotacaoController.groovy"));
            mgr = (ICotacaoController) classeProxy.newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public boolean deleteCotacao(Integer codigoCotacao) {
        return mgr.deleteCotacao(codigoCotacao);
    }

    public Vector<BuscaChaveEstrangeira> searchUnidadePorId(Integer codigo) {
        return mgr.searchUnidadePorId(codigo);
    }

    public Vector<BuscaChaveEstrangeira> searchUnidadePorNome(String nomeFantasia) {
        return mgr.searchUnidadePorNome(nomeFantasia);
    }

    public Vector<BuscaChaveEstrangeira> searchCondicaoPorId(Integer codigo) {
        return mgr.searchCondicaoPorId(codigo);
    }

    public Vector<BuscaChaveEstrangeira> searchCondicaoPorNome(String descricao) {
        return mgr.searchCondicaoPorNome(descricao);
    }

    public Vector<BuscaChaveEstrangeira> searchMercadoriaPorId(Integer codigo) {
        return mgr.searchMercadoriaPorId(codigo);
    }

    public Vector<BuscaChaveEstrangeira> searchMercadoriaPorNome(String nome) {
        return mgr.searchMercadoriaPorNome(nome);
    }

    public Vector<BuscaChaveEstrangeira> searchFornecedorPorId(Integer codigo) {
        return mgr.searchFornecedorPorId(codigo);
    }

    public Vector<BuscaChaveEstrangeira> searchFornecedorPorNome(String nome) {
        return mgr.searchFornecedorPorNome(nome);
    }
    public CotacaoPreco readCotacaoPorId(Integer codigoCotacao) {
        return mgr.readCotacaoPorId(codigoCotacao);
    }

    public boolean updateCotacao(CotacaoPreco cotacao) {
        return mgr.updateCotacao(cotacao);
    }

    public boolean createCotacaoSemPedido(CotacaoPreco cotacao) {
        return mgr.createCotacaoSemPedido(cotacao);
    }

    public Vector<PedidoCompra> createCotacaoComPedido(CotacaoPreco cotacao) {
        return mgr.createCotacaoComPedido(cotacao);
    }

    public Vector<CotacaoPreco> readCotacao(String data, String nomeFornecedor) {
        return mgr.readCotacao(data, nomeFornecedor);
    }

    public Vector<PedidoCompra> updateCotacaoComPedido(CotacaoPreco cotacao) {
        return mgr.updateCotacaoComPedido(cotacao);
    }
}